/**
 * 用户路由
 * 定义用户相关的API端点
 */

const express = require('express');
const router = express.Router();
const rateLimiter = require('../middleware/rateLimiter');

// 导入控制器
const {
  registerUser,
  loginUser,
  getCurrentUser,
  updateUserProfile,
  sendVerificationCodeHandler,
  changePassword
} = require('../controllers/user.controller');

// 导入中间件
const {
  authenticateToken,
  authorizeAdmin,
  optionalAuth
} = require('../middleware/auth.middleware');

// 用户注册端点
router.post('/register', registerUser);

// 用户登录路由（支持普通用户和管理员登录）
router.post('/login', rateLimiter, loginUser);

// 发送验证码端点
router.post('/send-verification-code', sendVerificationCodeHandler);

// 获取当前用户信息端点（需要认证）
router.get('/me', authenticateToken, getCurrentUser);

// 更新用户资料端点（需要认证）
router.put('/profile', authenticateToken, updateUserProfile);

// 修改密码端点（需要认证）
router.put('/change-password', authenticateToken, changePassword);

module.exports = router;